3d-printing/lib/skadis-board/README.md
2026-06-10 09:24:49 +02:00

79 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Skadis Board
![Preview](preview.png)
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`](example.scad) (standard pattern left, dense right).
## Usage
```scad
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`](../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.
## Used by
- [RASKOG Magnetic Separator](../../raskog-separator/)