| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .. | ||
| example.scad | ||
| preview.png | ||
| README.md | ||
| skadis-board.scad | ||
Skadis Board
Generates an IKEA Skadis-compatible pegboard panel — a flat board carrying the standard Skadis through-slot pattern, so off-the-shelf Skadis accessories hang on it. Give it the outer width and height and it fills a centered slot lattice; pick "standard" for the genuine Skadis layout or "dense" for twice as many slots (still compatible). The preview above is generated from example.scad (standard pattern left, dense right).
Usage
use <../lib/skadis-board/skadis-board.scad>
// A 270 x 80 mm standard Skadis panel, 5 mm thick.
skadis_board(width = 270, height = 80);
// Denser variant — adds the empty checkerboard cells for a full 20 mm grid.
skadis_board(width = 270, height = 80, density = "dense");
The board is built in the X (width) / Z (height) plane with the thickness along Y, so it already stands vertically — translate it up onto a base and it's a standing pegboard.
The hole pattern
A real Skadis board is a 40 mm × 40 mm grid plus a second 40 mm grid offset by +20 mm in both X and Z — equivalently, a vertical oval slot at every point on a 20 mm grid where (i + j) is even (a checkerboard). That 40/20 ratio is what makes accessories fit, so it is fixed by construction:
"standard"reproduces that checkerboard exactly."dense"also fills the(i + j)odd points → a full 20 mm grid. Because that is a strict superset of the standard positions, every standard accessory still registers; it just adds slots in between.
There is deliberately no free hole-spacing parameter — only pitch (asserted to 40) and density — so the ratio cannot be broken.
Modules
skadis_board(width, height, thickness, density, pitch, min_margin, slot_w, slot_h, edge_chamfer, corner_r, perimeter_fillet, fn)
A rounded-rectangle board of the given outer width × height with a centered lattice of vertical pill-shaped through-slots, each with a countersunk mouth on both faces. The whole perimeter — both front- and back-face edges — is softened by a small perimeter_fillet.
| Parameter | Default | Description |
|---|---|---|
width |
(required) | Outer board width (X, mm) |
height |
(required) | Outer board height (Z, mm) |
thickness |
5.0 mm | Board thickness (Y) — Skadis standard is 5 mm |
density |
"standard" |
"standard" (checkerboard) or "dense" (full 20 mm grid) |
pitch |
40 mm | Skadis grid pitch — keep at 40 for compatibility |
min_margin |
14 / 10 mm | Minimum clear distance from the outer slots to the board edge; defaults to 14 for "standard" and 10 for "dense" |
slot_w |
5.0 mm | Slot width (short axis) |
slot_h |
15.0 mm | Slot length (long axis, vertical) |
edge_chamfer |
1.0 mm | Countersink at each slot mouth; 0 = sharp slot |
corner_r |
4 mm | Outer board corner radius; 0 = square corners |
perimeter_fillet |
1.0 mm | Rounded fillet on the front- and back-face perimeter edges; 0 = sharp edges |
fn |
64 | $fn for the slot/corner cylinders |
Functions
| Function | Returns |
|---|---|
skadis_cols(width, pitch, min_margin) |
Number of standard 40 mm columns that fit |
skadis_rows(height, pitch, min_margin) |
Number of standard 40 mm rows that fit |
skadis_slot_positions(width, height, pitch, density, min_margin) |
List of [x, z] slot centers |
Constants
| Name | Value | Description |
|---|---|---|
SKADIS_PITCH |
40 mm | Standard Skadis grid pitch |
Coordinate system
| Axis | Direction |
|---|---|
| X | Horizontal — board width |
| Y | Board thickness — back face at Y=0, front face at Y=thickness |
| Z | Vertical — board height; slots are vertical ovals (long axis along Z) |
Relationship to skadis-t-clip
lib/skadis-t-clip makes the accessory's mounting cutout (a slot plus a T-clip cap recess) for parts that hang on a board. This library makes the board itself (plain through-slots). They are complementary, not dependent.
