diff --git a/README.md b/README.md
index 609a20a..6bc0a45 100644
--- a/README.md
+++ b/README.md
@@ -22,18 +22,25 @@ index.html app-shell: ribbon, splashscreen
css/app.css alle stijl
js/vendor/ three.js r128, eigen OrbitControls, jsPDF
js/core/ gedeelde helpers: geometrie, bouwfasen, ribbon, UI-kit, PDF-bladen,
- labels, camerageheugen, weergavefilter, skybox, licentie, logo
+ DXF-schrijver (dxf-writer.js), IFC-schrijver (ifc-writer.js), OBJ-schrijver
+ (obj-writer.js), ZIP (zip-writer.js), labels, camerageheugen, weergavefilter,
+ skybox, licentie, logo
js/wall/ WallModel (logica) + wand-PDF + wand-editor
js/floor/ FloorModel (logica) + vloer-PDF + vloer-editor
js/roof/ RoofModel: dak (plat/lessenaar/zadel) + dakrand (boeidelen/daktrim)
PostModel: palen onder een overkapping/veranda (dak per unit te verlengen)
+js/house/chimney-model.js ChimneyModel: schoorsteen tegen een buitenwand (hol, sparing in de wand zoals een raam,
+ ook over een naad, zonder hout erin; sparing in het dak met raveelwerk (stijlen, balken, kreupele
+ balken), de beplating eindigt op het kader; onderbreekt de dakrand; een nokbalk stopt ervoor;
+ buiten steenstrip/stuc, binnen als de wanden of eigen; in de plattegrond
+ te verslepen langs de buitengevel)
js/lighting/ LightingModel: gevellampen, boeideel-spots, binnenspots
js/elektra/ ElektraModel + ElektraPdf: meterkast, schakelaars (letters), wcd, groepen, leidingen
js/sandwich/ SandwichModel: sandwichpanelen rondom
js/room/ RoomModel: ruimtes (verfemmer), functie, netto m², afwerking, vals plafond
js/interior/ FixtureModel: inrichting (sanitair, keuken, kasten, meubels, boiler)
js/unit/ UnitModel: 1 vloer + 4 wanden, naden, wandstukken
-js/house/ HouseModel (woning) + woning-PDF + woning-editor
+js/house/ HouseModel (woning) + woning-PDF + CAD-export (house-dxf.js) + BIM-export (house-ifc.js) + woning-editor
js/cost/ CostModel (kostenberekening), posten + noodwaarden, CostCsv (CSV's), venster Kosten & tijden
js/app.js menubalk, versienummer, actieve editor
json/defaults/ referentie-JSON's (niet runtime ingeladen)
@@ -86,7 +93,11 @@ assets/ logo, texturen, skybox
opening), kleur buiten en binnen (wit, grijs, antraciet, zwart). Volgt de
maat van de opening, ook een schuine bovenzijde. Deur: kant van het blad,
scharnierzijde en draairichting (naar binnen/buiten); openslaande deuren
- met zijlichten = twee deuren naast elkaar. Schuifdeur: 1 of 2 bladen
+ met zijlichten = twee deuren naast elkaar. Koppelen: een opening die tegen
+ zijn buur aan staat (zelfde onderkant en hoogte, samen max. 2850 mm) vormt
+ daarmee één sparing zonder stijlen, dagkanten, latten of kozijnstijlen
+ ertussen; twee draaideuren worden stolp (bladen tegen elkaar), anders één
+ gedeelde tussenstijl. Schuifdeur: 1 of 2 bladen
(uit elkaar), in de wand of op de wand aan een rail (binnen- of
buitenzijde), glazen of dicht blad. In de plattegrond (app en PDF) een
draaicirkel per deur en de schuifrichting per schuifdeur; in de loopmodus
@@ -105,6 +116,11 @@ assets/ logo, texturen, skybox
rechte nok ertussen), de haakse wanden staan vlak op de goothoogte. Het
bovenste deel van een wolfsdak is gewoon houtwerk: sporen, hoekkepers,
nokbalk en kopbalken (ook in zaaglijst, specificaties en kosten).
+ Een dubbel lessenaardak (twee units, elk hoog aan hun gezamenlijke naad,
+ op de mm gelijke goot, nok en hoogte op de naad: samen een zadeldak)
+ krijgt net als een zadeldak een stalen nokbalk onder de naad; één
+ lessenaar of twee die zo niet aansluiten niet. Staat er een schoorsteen
+ op de nok, dan stopt elke nokbalk vóór de schoorsteen.
Goot en nok gelden over de volle vloermaat (goot boven de buitenkant van
de gevel); staat de kopgevel tussen de haakse wanden, dan loopt zijn
daklijn daar precies op aan. Het wolfseind schaalt mee met goot en
@@ -228,6 +244,52 @@ assets/ logo, texturen, skybox
- **Uitvoer:** JSON opslaan/openen en een samenhangende PDF (aanzichten
noord/oost/zuid/west als vlakke render met legenda afwerking, plattegrond,
vloeren, wandstukken, binnenwanden, totalen).
+- **CAD-export (DXF):** Bestand › Exporteren › CAD (DXF), ook in de ribbon
+ Woning › Uitvoer; los van Opslaan/Ctrl+S. DXF R12 (AC1009), opent in elk
+ CAD-pakket (AutoCAD, BricsCAD, DraftSight, LibreCAD, …); DWG maakt het
+ CAD-pakket zelf met Opslaan als (echte DWG schrijven vergt een GPL- of
+ commerciële bibliotheek). Modelruimte 1:1 in mm: plattegrond met noord
+ boven en de zuidwesthoek van de units op 0,0, eronder de vier gevels in een
+ 2×2-raster (maaiveld als basis). Plattegrond: wanden per stuk als gesloten
+ polylijn, onderbroken bij sparingen die onder het snijvlak (1500 mm) beginnen
+ (hogere gestreept), stijlzone en gevelbekleding als eigen lagen, kozijnen
+ (raam: kader + glaslijn; deur: stijlen, blad en draaicirkel als boog;
+ schuifdeur: bladen, pijlen, rail), ruimtegrenzen als gesloten polylijn met
+ naam/m²/plafond, inrichting, dakrand, palen, schoorsteen, verlichting,
+ elektra, naden en elementcodes. Gevels: dezelfde vlakken als de
+ PDF-aanzichten (`HousePdf.viewProjections`) als lijntekening met verborgen
+ lijnen weg, kozijnen met kader, blad, zij-/bovenlicht en glas
+ (`KozijnModel.viewLines`). Maatvoering als echte DIMENSION (maatstijl
+ TECTUM): ketting per buitenwandstuk langs de sparingen, totaal per stuk en
+ van de woning, hoogtes maaiveld/peil/top per gevel. Lagen `PL-*`
+ (plattegrond), `AZ-*` (aanzichten), `MAATVOERING`, `TEKST`; tekst,
+ maatvoering en lijntypes afgestemd op 1:50 (`$LTSCALE`/`DIMSCALE` 50).
+- **BIM-export (IFC):** Bestand › Exporteren › BIM (IFC), ook in Woning ›
+ Uitvoer. IFC4 met alleen de bouwconstructie: hout (stijlen/regels als
+ IfcMember, vloerbalken als IfcBeam, dakbalken als IfcMember), stalen
+ nokbalk, palen, platen (spaanplaat, OSB, cementplaat als IfcPlate) en
+ elektra (buis per leiding, inbouw-/lasdozen, meterkast); geen
+ gevelafwerking, latwerk, isolatie, kozijnen, dakbedekking of inrichting.
+ Geometrie uit de 3D-opbouw zelf (`HouseIfc`: fase *elektra* voor alle balken
+ en leidingen, fase *beplating* voor de platen; herkend aan het materiaal),
+ als driehoeksnet. Opbouw: unit › element (A-W1, A-V1, A-D) › onderdelen;
+ binnenwanden en elektra los in de bouwlaag. Per onderdeel `Pset_Tectum`
+ (element, onderdeel, afmeting, lengte, materiaal). Kleur per soort (op het
+ vlak en het materiaal): stijl lichthout, regel oranje, vloerbalk bruin,
+ dakbalk roodbruin, paal donkerbruin, stalen nokbalk staalblauw, spaanplaat
+ groen, OSB geel, cementplaat grijs; elektra in de app-kleuren
+ (`HouseIfc` COLORS). X = oost, Y = noord,
+ Z = 0 op peil; zuidwesthoek van de units = 0,0 (zelfde als de DXF).
+- **Render-export (OBJ):** Bestand › Exporteren › Render (OBJ), ook in Woning ›
+ Uitvoer. De volledige afgewerkte woning (laatste bouwfase, dak, dakrand,
+ lampen, ruimtes, inrichting; los van de gekozen fase, doorsnede en
+ weergave-opties; zonder logobord, grond en lucht) als ZIP met `.obj`, `.mtl`
+ en `textures/*.png` (rabat, steen, riet, tegels). Meters, Y omhoog (de
+ standaard OBJ-import van Blender zet dat goed: noord = +Y), oorsprong op
+ maaiveld onder het midden. Kleuren omgerekend van sRGB naar lineair (de app
+ heeft geen kleurbeheer, Blender wel), PBR via `Pr`/`Pm`/`d`/`Ke` (ruwheid,
+ metaal, doorzichtigheid glas, gloed lampen); textuurherhaling zit in de
+ UV's (`ObjWriter`).
## Kosten en prijzen (CSV)
@@ -274,6 +336,16 @@ hout.balk.38x235;Constructiehout vuren C24 38×235;€/m;4,91;Houthandel Y;;2026
## Bekende beperkingen
+- DXF: geen arceringen en geen lijndiktes (R12); kleuren per laag (ACI), dus
+ pendiktes via de plotstijl. Geen doorsnede en geen dakaanzicht. Eenheid
+ staat niet in het bestand: in CAD op millimeters zetten (UNITS) als het
+ pakket erom vraagt.
+- OBJ: geen lichtbronnen (lampen alleen als gloeiend materiaal), geen
+ reliëf-/normaalkaarten; glas als doorzichtig materiaal, in Blender eventueel
+ op Glass BSDF zetten.
+- IFC: onderdelen zijn driehoeksnetten (niet parametrisch); geen
+ verbindingsmiddelen, isolatie of bekabeling (alleen buizen).
+
- Tijdelijk (verwijderen voor productie): zaagmachine-overzicht (zaagmeters bij
2400 m/u, zaagsneden, hoeken) in de app en op het totalenblad (`SAW_M_PER_H`).
- Tijdelijk: een nieuwe woning is het voorbeeldontwerp "Vlinderwoning"
@@ -303,7 +375,7 @@ hout.balk.38x235;Constructiehout vuren C24 38×235;€/m;4,91;Houthandel Y;;2026
(`HouseModel.createRijn`, naar `examples/ontwerp_rijn.pdf`): L-vorm
13 × 10 m, hoofdvolume met flauw zadeldak (twee lessenaars die op de naad
de nok vormen) en een vleugel met plat dak, steenstrips rondom met een
- donkere schoorsteenstrook in de oostgevel, kookeiland, logeerkamer en
+ schoorsteen (800 mm, hart op de naad) in de oostgevel, kookeiland, logeerkamer en
apart toilet in de vleugel. De standaardmodellen staan in
`HouseModel.MODELS`; Bestand › Snel nieuw en het venster Nieuw worden
daaruit opgebouwd (nieuw model = één regel plus een `create`-functie die
diff --git a/index.html b/index.html
index 988c781..ad58dad 100644
--- a/index.html
+++ b/index.html
@@ -91,6 +91,10 @@
+
+
+
+
@@ -106,6 +110,7 @@
+
@@ -113,6 +118,8 @@
+
+