# NOTES – plan-v5b (möbelkalibrering)

**Datum:** 2026-09-27  
**Källor:**
- Rumszoner: `figma-tagged-v2-magnus.svg` (samma som v4)
- Väggar/dörrar/fönster: `overlay-walls-doors-v2-magnus.svg` (samma som v4)
- **Möbler:** `furniture-overlay-v2-magnus.svg` (ny)
- Kalibrering: kontrollpunkter vs vägg-inneryta + `_figma_4k.png` (obs: `furniture-overlay-v2-on-figma.png` = opålitlig full-frame-stretch)

**Output:** `plan-v5b.svg`, `plan-v5b.pdf`, `plan-v5b.png` (2900×2785 px)  
**Generator:** `build_plan_v5b.py`

## Syfte

Arkitektsnär 2D-planritning: BAB-zoner + Magnus vägg/dörr/fönster **plus** Magnus
möbel-/fixturlager. Inbyggda v4-symboler (säng, soffa, KF, DM, TM, WC, brits, skåp, ö …)
är **borttagna**. **Ej bygglovshandling.**

## Möbelkoordinater (viktigt) — v5b-kalibrering

| Lager | viewBox | Tolkning i plan-v5b |
|---|---|---|
| Vägg/dörr | `0 0 28259 27934` | Figma-SVG → byggnads-mm via styckvis interp (nedan) |
| Zoner | samma som vägg | samma mappning |
| **Möbler** | `0 0 17821 17880` | **linjär karta → inneryta** (200,200)–(17971,18200) |

### Varför inte v5:s 1:1 mm + translate(marginal)?

v5 antog `1 uu ≈ 1 byggnads-mm` med origo = **yttre** NV. Då låg säng R1 (y≈36),
östlig skåprad (xmax≈17818) och sydbänkar (ymax≈17878) **inne i väggfyllningen**
(yttervägg 0–200 / 17971–18171 / 18200–18400). Visuellt: möbler korsade väggar.

### Kalibrerad transform

```
translate(MARGIN_L+200, MARGIN_T+200) scale(17771/17821, 18000/17880)
```

dvs. `mm_x = 200 + furn_x × (17771/17821)`, `mm_y = 200 + furn_y × (18000/17880)`.

Belägg: apparatmoduler ~595, sängar ~900×2000 (efter rotate), bänkar ~600 djupa —
måtten är mm-lika men **canvas = innermått**, inte ytterkontur 18171×18400.

### Kontrollpunkter (mot vägg-inneryta / `_figma_4k`)

| Punkt | furn (uu) | → mm (v5b) | Förväntan |
|---|---|---|---|
| Säng R1 NE topp | y≈36 (efter rotate AABB) | ≈236 | ≥200 (N-inneryta) |
| Skåprad R4 högerkant | xmax≈17818.5 | ≈17968 | ≤17971 (Ö-inneryta) |
| Sydbänk kök/DM | ymax≈17877.5 | ≈18198 | ≤18200 (S-inneryta) |
| TM-rad R7 | y≈15390 | ≈15694 | innanför R7, mot N-vägg |
| KF kök norr | y≈15390 | ≈15694 | innanför kök, ej i vardagsrumsvägg |

**Skillnad mot v5:** endast möbellagrets transform; väggar/dörrar/zoner/mått oförändrade.

Etiketter (KF, TM, TT, DM m.m.) följer med som **vektoriserade path-glyfer** från Magnuss SVG
(inga `<text>`-noder i källfilen) — namngivning oförändrad.

## Koordinatmappning vägg/zon (oförändrad från v4)

### X (Figma-SVG → mm)

| SVG | mm |
|---|---|
| 5941.5 | 0 |
| 6118.1 | 200 |
| 11282.4 | 5400 |
| 11473.2 | 5600 |
| 19110.1 | 13171 |
| 19286.8 | 13371 |
| 23744.6 | 17971 |
| 24034.3 | 18171 |

### Y (Figma-SVG → mm)

| SVG | mm |
|---|---|
| 4585.0 | 0 |
| 4761.6 | 200 |
| 16037.0 | 11600 |
| 16171.2 | 11800 |
| 22487.1 | 18200 |
| 22762.6 | 18400 |

## Skillnader mot plan-v4

1. **Alla** programmatiska möbel-/fixtursymboler borttagna (säng, soffa, skåprad, brits,
   WC, handfat, KF/DM/TM/TT/spis, köksö, …).
2. **Magnus** `furniture-overlay-v2-magnus.svg` inbäddad som enda möbellager
   (208 top-level SVG-barn: rect/path/ellipse/circle/mask).
3. Väggar, dörrar, fönster, rumszoner, rumsetiketter och mått **oförändrade** från v4.
4. Kök = fortfarande blå zon väster om R7; vardagsrum = `#64B43C` (ingen köksfixtur där
   i Magnuss lager heller — KF/DM ligger i köksbänkarna).

## Parsat

| Typ | Antal |
|---|---|
| Ytterväggsegment | 32 |
| Innerväggsegment | 46 |
| Dörrar | 24 |
| Fönster | 22 |
| Zonpolygoner | 28 |
| Möbel-SVG top-level | 208 |

## Dörrlista (placering, ej Magnus D-nummer)

| # | Placering | Vägg | Gångjärn | Bredd mm | Mitt (mm) |
|---|---|---|---|---|---|
| 1 | Högerflygel: R1 sovrum (ljud) – sydvägg mot korridor | S | L | 900 | (13807, 2648) |
| 2 | Vänsterflygel norr: R8 / förråd | W | R | 810 | (1523, 2766) |
| 3 | Vänsterflygel norr: R8 / förråd | S | L | 850 | (1430, 2982) |
| 4 | Vänsterflygel östfasad/gård: dörr mot innergård (norr) | W | R | 888 | (5858, 3229) |
| 5 | Högerflygel: R2 aktivitetsrum ↔ R4 korridor (öst) | N | L | 1016 | (16341, 3606) |
| 6 | Högerflygel västfasad/gård: dörr mot innergård (aktivitet/sov) | W | L | 900 | (11779, 4909) |
| 7 | Vänsterflygel: R9 allrum / R10 sovrum | W | R | 888 | (2848, 6612) |
| 8 | Vänsterflygel östfasad/gård: dörr mot innergård (mitt) | W | R | 888 | (5858, 6726) |
| 9 | Högerflygel: R2 aktivitet – sydvägg / öppning mot R3 | S | L | 1007 | (13848, 7069) |
| 10 | Vänsterflygel: R11 / cirkulation / gårdssida | N | R | 850 | (2016, 7324) |
| 11 | Vänsterflygel: R11 / cirkulation / gårdssida | W | R | 700 | (1347, 8138) |
| 12 | Högerflygel: R3 kontor – sydvägg mot R5 passage | S | L | 1007 | (13848, 8953) |
| 13 | Vänsterflygel: R11 / cirkulation / gårdssida | W | R | 888 | (2637, 9254) |
| 14 | Vänsterflygel: R12 / förråd / hall mot gård | W | L | 854 | (2623, 9507) |
| 15 | Högerflygel västfasad/gård: dörr mot hall/passage | E | R | 987 | (12830, 10758) |
| 16 | Innergård sydkant: dörr/parti mot kök eller hall | S | R | 870 | (9300, 11214) |
| 17 | Högerflygel: R6 anpassat badrum eller hall väster om bad | N | R | 1000 | (17234, 11424) |
| 18 | SV: R14 familjebadrum / hall | W | R | 700 | (1347, 13074) |
| 19 | SV: R14 familjebadrum / hall | S | R | 884 | (2050, 13273) |
| 20 | Kök/vardagsrum / genomgång mot tvätt eller gård | E | R | 920 | (10219, 13363) |
| 21 | Högerflygel/SE: R7 tvättstuga (inkl. genomgång) | W | R | 890 | (14365, 17510) |
| 22 | SV: R15 badrum/WC eller ytterdörr SV | W | R | 742 | (2600, 17545) |
| 23 | SV: R15 badrum/WC eller ytterdörr SV | N | L | 1005 | (2419, 18405) |
| 24 | Sydfasad SE: ytterdörr vid tvätt/kök | N | L | 994 | (14191, 18602) |

## Fönsterlista

| # | Placering | Ori. | Längd mm | Mitt (mm) |
|---|---|---|---|---|
| 1 | Vänsterflygel östfasad (mot innergård) | V | 1162 | (5454, 1616) |
| 2 | Högerflygel västfasad (mot innergård) | V | 1020 | (13314, 1790) |
| 3 | Högerflygel västfasad (mot innergård) | V | 889 | (13314, 4025) |
| 4 | Högerflygel västfasad (mot innergård) | V | 889 | (13314, 4914) |
| 5 | Högerflygel västfasad (mot innergård) | V | 889 | (13314, 5809) |
| 6 | Högerflygel västfasad (mot innergård) | V | 889 | (13314, 6698) |
| 7 | Högerflygel västfasad (mot innergård) | V | 987 | (13314, 8472) |
| 8 | Vänsterflygel östfasad (mot innergård) | V | 1157 | (5454, 5101) |
| 9 | Vänsterflygel östfasad (mot innergård) | V | 1157 | (5454, 8675) |
| 10 | Vänsterflygel östfasad (mot innergård) | V | 1157 | (5454, 10080) |
| 11 | Innergård sydkant (glas/parti) | H | 815 | (6191, 11695) |
| 12 | Sydfasad | V | 587 | (4065, 18694) |
| 13 | Sydfasad | V | 587 | (7416, 18694) |
| 14 | Sydfasad | H | 604 | (4740, 19224) |
| 15 | Sydfasad | H | 586 | (5777, 19224) |
| 16 | Sydfasad | H | 621 | (6823, 19224) |
| 17 | Sydfasad | H | 1201 | (9440, 18282) |
| 18 | Sydfasad | H | 1201 | (12059, 18282) |
| 19 | Innergård sydkant (glas/parti) | H | 783 | (7096, 11701) |
| 20 | Innergård sydkant (glas/parti) | H | 783 | (7985, 11701) |
| 21 | Innergård sydkant (glas/parti) | H | 783 | (9729, 11701) |
| 22 | Innergård sydkant (glas/parti) | H | 1129 | (11911, 11701) |

## Öppna frågor / osäkerheter

1. Möbelkalibrering är **global likformig** (anisotrop scale X/Y) mot inneryta — lokal
   styckvis Figma-warp används inte. Små restfel (~cm) nära innerväggar kan kvarstå.
2. `furniture-overlay-v2-on-figma.png` var full-frame-stretch och är **inte** tillförlitlig
   referens; `_figma_4k.png` + inneryte-kontrollpunkter styrde v5b.
3. DM-etikett i tvättstuga behålls (fråga TM2 vs DM).
4. Dörr-swing / D-nummer — samma osäkerhet som v4.
5. Utemöbler väster om fasad (xmin≲0 i overlay) kan ligga strax innanför västinneryta.

## Filer

| Fil | Beskrivning |
|---|---|
| `build_plan_v5.py` | Generator |
| `plan-v5.svg` | Vektor (user units = mm, skala 1:100) |
| `plan-v5.pdf` | Utskriftsbar PDF |
| `plan-v5.png` | ~2900×2785 px |
| `furniture-overlay-v2-magnus.svg` | Källa möbler |
| `NOTES-v5b.md` | Denna fil |
| `NOTES-v5.md` | Föregående (felkalibrerad möbel) |
