karim
060b851e5c
Tür/Fenster 2D: Rahmenband, Blockrahmen, Schichteinzug, Oberlicht-Linie
...
Setzt die vertieften Tür-/Fensterparameter im Grundriss-Schnitt um:
- opening-frame: Rahmenprofil als Band der Breite frameWidth in der
Laibung; Blockrahmen (Tür) als kräftigeres, vor die Laibung gesetztes
Profil, Zarge als schmales Laibungsband.
- Schichteinzug: die gewählte Fläche (aussen/innen) wird um insetFromFace
nach innen versetzt (Nahkante wandert, Fernkante bleibt).
- opening-transom: gestrichelte Überkopf-Linie über der Öffnung, wenn
transomHeight > 0.
Typlose Öffnungen zeichnen unverändert (Rückwärtskompatibilität getestet).
+5 Tests. tsc sauber, vitest grün.
2026-07-09 01:14:16 +02:00
karim
6b9c243431
Mess-Werkzeug: Polygonzug mit Fläche + Live-Werte im Objekt-Info-Panel
...
Das Mess-Werkzeug wird von der reinen Strecke zum Polygonzug:
- Jeder Klick setzt einen weiteren Stützpunkt; angezeigt werden letztes
Segment (Länge · Winkel), aufsummierte Pfadlänge und — ab 3 Ecken —
die umschlossene Fläche (Gauss).
- Die Messwerte erscheinen dauerhaft im Objekt-Info-Panel (neuer
Abschnitt „Messung"), nicht nur flüchtig am Cursor-HUD. Kanal:
ToolDraft.measure → PanelHost.measurement → ObjectInfoPanel.
- Rechtsklick/Enter beendet den aktuellen Pfad und armiert sofort einen
neuen (mehrere Messungen nacheinander); Rechtsklick auf leerem Pfad
bzw. Esc beendet das Werkzeug.
+4 Tests (Segment/Winkel, Summe/Fläche, Ketten-Verhalten). tsc sauber.
2026-07-09 01:13:15 +02:00
karim
3d741868c3
LICENSE: offizieller AGPL-3.0-Lizenztext (von gnu.org)
...
README verweist auf die Lizenz; der vollständige, wörtliche FSF-Text
(AGPL-3.0, 2007-11-19) wird als LICENSE-Datei ergänzt.
2026-07-09 01:05:28 +02:00
karim
ca23bcc791
Tür/Fenster-Typmodell vertiefen: Rahmenart, Rahmenbreite, Schichteinzug, Oberlicht, Kämpfer
...
Erweitert DoorType/WindowType um architektonische Detailparameter und
verdrahtet sie im ResourceManager-Typeditor (Tür-/Fenstertypen):
- Tür: frameKind (Zarge/Blockrahmen), frameWidth (Ansichtsbreite Profil),
insetFromFace + insetFace (Schichteinzug ab Aussen-/Innenfläche),
transomHeight (Oberlicht über Kämpfer).
- Fenster: mullionRows (horizontale Kämpfer-Teilung), frameWidth,
insetFromFace + insetFace, transomHeight.
- Seeds: Haustür „Blockrahmen (Oberlicht)" + Fenster „2-flügl. + Oberlicht"
demonstrieren Einzug/Oberlicht/Kämpfer.
- i18n de/en für alle neuen Felder + Optionen.
Reine Modell-/UI-Schicht; 2D- und 3D-Darstellung folgen separat. Alle
Felder optional → rückwärtskompatibel. tsc sauber.
2026-07-09 01:03:05 +02:00
karim
1d939a939a
Akkumulierten grünen Arbeitsstand landen (Basis für Weiterarbeit)
...
Bündelt den über mehrere Sessions gewachsenen, uncommitteten Stand in
einem Basis-Commit, damit Folge-Features isoliert darauf aufsetzen.
Verifikation: tsc --noEmit sauber, vitest 600/600 grün.
Enthalten (Details in PENDENZEN.md ✅ -Liste / HANDOVER.md):
- truck-Integration: Profil-Extrusion + Verjüngung + Boolean-CSG (csgrs),
Crate src-tauri/trucksolid, Werkzeug `extrude`, ExtrudedSolid-Modell.
- kernel2d-Port nach Rust/WASM (Phasen 1–5, Diff-Harness).
- render3d 3D-Live-Schnitt = 2D-Schnitt: geschichteter Bodenaufbau,
Prioritäts-Verschneidung (section_boolean.rs), einstellbare
Schichttrennlinien, per-Hatch-Strichstärke, relativeToWall-Orientierung.
- Interop-Export IFC4/STL/OBJ (Loch-Ausschnitt wallMeshCut), Schnellexport.
- Projektdatei .obp + OS-Lock (lock.rs, LockConflictDialog).
- Layout-Blätter (Modell/Editor/Panel/PDF), Ausschnitte, Override-Engine,
Tragwerk-Stützen (Column), BIM-Tree-Panel.
- Bauteil-Typsystem (Tür/Fenster/Treppe-Typen), Betontreppe mit schräger
Laufplatte, Text-/Textbox-Werkzeug, Mess-Werkzeug, 2D/3D-Griffe für
Öffnungen/Treppen, Snap-Symbol-Restyle.
2026-07-09 00:57:29 +02:00
karim
9b33a89318
Wandtyp-Kürzel: Component.abbrev + wallTypeLabel() + Kürzel-Feld im ResourceManager; Geschoss-Dropdown schmal
2026-07-05 23:16:38 +02:00
karim
132622b479
Ribbon: feste Höhe 60px statt min-height — kein Springen beim Tab-Wechsel
2026-07-05 22:50:26 +02:00
karim
7e23dabf3b
Ribbon 3D-Tab: Kamera-Presets + Darstellungsart; truck-Integration geplant 2026-07-07
2026-07-05 22:43:38 +02:00
karim
bd2a496ddd
Attribute: Aufbau-Umschalter Einschichtig→Solid (kürzer), Mehrschichtig bleibt
2026-07-05 22:27:10 +02:00
karim
22a3ebcae2
Attribute: Höhen-Bindung kürzer benannt (Gebunden/Eigene statt An Geschoss gebunden/Eigene Höhe), Wand+Decke
2026-07-05 22:18:30 +02:00
karim
0aafa4ba60
Attribute-Panel: verschobene Element-Abschnitte dem sauberen .attr-Grid-Look angeglichen (Sektion-Balken, Zeilentrenner, Label-Spalte, füllende Controls)
2026-07-05 22:13:56 +02:00
karim
ed27509881
ObjectInfo→Attribute: element-spezifische Abschnitte (Wand/Decke/Öffnung/Treppe/Raum) ins Attribute-Panel; ObjectInfo nur noch Bezugspunkt + Masse
2026-07-05 21:50:03 +02:00
karim
1c33232139
Bauteile: Fenster-Anschlag-Striche (Laibung, fein) analog zur Tür, mit Tests
2026-07-05 21:42:40 +02:00
karim
a92b583df8
Schnitt/Ansicht Phase 2: Decken-Überkopf-Umriss als gestrichelte Haarlinie (über Schnittebene), mit Test
2026-07-05 21:31:48 +02:00
karim
804c23628a
Schnitt/Ansicht Phase 1: Wand unter Schnittebene als Ansichts-Umriss (viewOnly, keine Poché), mit Tests
2026-07-05 21:22:51 +02:00
karim
e4d81aaa12
Ribbon Phase 4: modulare Custom-Bar als eigener Tab (Eigene) mit +-Picker, localStorage-persistiert
2026-07-05 20:57:13 +02:00
karim
da127f03a5
Ribbon Phase 3: Werkzeug-Sidebar aus Default-Layout, Wandtyp-Picker ins Attribute-Panel, Attribute volle Höhe (LAYOUT_VERSION 8)
2026-07-05 20:50:05 +02:00
karim
1c03e35e84
Fix: Kreise/Bögen im WebGL-Renderer sichtbar (drawingCircle/drawingArc tesselliert; Regression aus 21d76bd)
2026-07-05 20:31:04 +02:00
karim
11d5428198
Snap: Center-/Quadrant-Snaps für Kreise + Bögen (Bogen nur im Spannbereich) + Bogen-Endpunkte, mit Tests
2026-07-05 20:19:34 +02:00
karim
6dec36b8e0
Native macOS-Titelleiste: titleBarStyle Overlay (echte Ampeln + gerundete Ecken), Zeile links eingerückt; WindowControls Electron-only
2026-07-05 20:14:10 +02:00
karim
7e7350a243
Headless-Titelleiste (Tauri decorations:false): Fensterknöpfe links + Drag-Region, Tauri-Fenstersteuerung + Window-Capabilities
2026-07-05 19:42:48 +02:00
karim
76e1078eaa
Linienstile aufgeräumt: redundante 0.13-Volllinien zusammengeführt, weight-only als Volllinie benannt, Referenzen remappt
2026-07-05 19:32:38 +02:00
karim
ccc1bf0bd4
Ribbon: Text + Ansichten auf eine Leiste (Ansichten-Tab), als Standard-Tab zuerst
2026-07-05 19:18:23 +02:00
karim
0e83f4b947
TopBar OCS-Stil: kleine Wortmarke + Quick-Access-Icons (alle Datei-/Export-Aktionen), Zeile auf 26px, Burger-Menu raus
2026-07-05 18:37:18 +02:00
karim
4132697a70
Ribbon: Text-Formatierung in eigenen Text-Tab; TopBar-Zeile auf 40px verschlankt
2026-07-05 18:10:14 +02:00
karim
df7aee41e0
Ribbon-Tabs in die TopBar-Zeile verlegt: eine Leiste (Chrome + Tabs), Inhalt darunter
2026-07-05 18:04:48 +02:00
karim
824988af3f
Ribbon: TopBar-Ansichtssteuerung in Ansichten-Tab gemergt; TopBar auf schmale globale Leiste reduziert
2026-07-05 17:57:17 +02:00
karim
10a27e2eb7
Ribbon-UI Phase 1: datengetriebene Tab-Leiste (2D/3D/BIM/Ansichten), additiv unter TopBar
2026-07-05 17:00:09 +02:00
karim
64766ed1fe
Attribute-Panel: ein durchgehendes Grid, volle Breite, doppelten Titel raus
2026-07-05 16:54:04 +02:00
karim
c8cb48016b
UI: Eigenschaften-Panel als OCS-artiges Grid (Sektion-Balken, Zeilentrenner, fuellende Wertfelder)
2026-07-05 15:48:42 +02:00
karim
ca65d92051
Fix: Dokument-Overscroll gesperrt (Viewport-Zoom-Wheel zog die UI leicht mit, macOS)
2026-07-05 15:45:32 +02:00
karim
0d756db68f
Werkzeuge: Bogen-Werkzeug (arcCommand, 3-Klick CCW) + Toolbar/Icon/i18n verdrahtet
2026-07-05 15:44:05 +02:00
karim
17f435010c
Werkzeuge: Kreis-Toolbar verdrahtet (circleCommand gekoppelt, Icon, i18n)
2026-07-05 15:24:45 +02:00
karim
2c563a2000
DXF-Import: Platzierungsoption (relativ zu 0 ODER in Ansichtsmitte)
2026-07-05 15:17:09 +02:00
karim
9aaf7ca432
Zeichnungen: Ctrl/Cmd+C/V — 2D-Elemente ueber Geschosse kopieren/einfuegen (aktives Geschoss)
2026-07-05 15:10:58 +02:00
karim
21d76bd71d
DXF-Import: CIRCLE/ARC als echte glatte Kreis-/Bogen-Formen (statt tesselliertem Vieleck)
2026-07-05 15:06:25 +02:00
karim
a23f9d251e
Tauri: dragDropEnabled=false — HTML-Drag&Drop (Datei-Import) im Fenster wieder aktiv
2026-07-05 14:56:15 +02:00
karim
fd5e57c4aa
Layout: Befehlszeile in die Mitte-Spalte (nur Viewport-breit, Docks gewinnen Hoehe)
2026-07-05 14:48:37 +02:00
karim
bf3d0430d9
Import-Befehl: autoRun statt onConfirm — Datei-Dialog oeffnet synchron in der Geste
2026-07-05 14:48:37 +02:00
karim
1fcd1d5a06
DXF-Import: TEXT/MTEXT -> editierbarer Plan-Text (Drawing2D text-Primitiv, SVG-Render)
2026-07-05 14:29:05 +02:00
karim
69111d1b9b
DXF-HATCH: Ellipsen- + Spline-Randkanten tesselliert (B-Spline-Sampling extrahiert)
2026-07-05 14:18:49 +02:00
karim
d3a6c1775b
DXF-Import: HATCH via Custom-Handler -> gefuellte geschlossene Drawing2D-Flaeche
2026-07-05 14:12:59 +02:00
karim
6f17589f4d
DXF-Import: SPLINE (De-Boor-B-Spline) + INSERT (Block-Expansion mit Transform/Array/Verschachtelung)
2026-07-05 13:59:15 +02:00
karim
e40d100f35
DXF-Import: ARC/CIRCLE/ELLIPSE als tessellierte Konturen (Abdeckungsluecke geschlossen)
2026-07-05 13:51:08 +02:00
karim
91e891e77c
Treppe: Vorkonfiguration vor Erstellung (Breite/Referenz/Trittmass)
...
- Referenz (links/mitte/rechts) + Trittmass-Modus (mit/ohne) als togglebare
Optionen, Breite als Tab-Feld — bereits in der Idle-Phase (vor dem 1. Punkt).
- Trittmass-Modus 'mit': stepsFromTread(auftritt, runLength) leitet Stufenzahl
aus Ziel-Auftritt ab (Default IDEAL_TREAD); Feld Auftritt statt Stufen.
- appendStair schreibt Stair.referenz; Geometrie/Outline versetzt entsprechend.
- stairDefaults (modulweit) merkt zuletzt gewaehlte Werte fuer die naechste
Treppe (Session-RAM; localStorage/projectSlice waere Folgeschritt).
- 10 Tests (stair.tread.test.ts), i18n de/en. vitest 302/302, tsc sauber.
2026-07-05 13:14:06 +02:00
karim
562d645711
DWG/DXF-Import-Spike: acadrust baut zu wasm32 (Crate dwgimport)
...
- src-tauri/dwgimport: eigenstaendiges Crate (cdylib+rlib, eigener [workspace]),
dep acadrust 0.4 (MPL-2.0, pure Rust). parse_dxf_summary(bytes) via
DxfReader::from_reader + Cursor<Vec<u8>> -> JSON (version/entityCount/
entityTypeCounts/layerNames). wasm-Fassade parse_dxf_summary_json.
- getrandom wasm_js-Feature noetig (transitiv via ahash) -> als Dep gesetzt.
- Kernbeweis: acadrust kompiliert nach wasm32 (839 KB), DXF-Parse headless
getestet (5 Entities korrekt). Beweist den DWG/DXF-Import-Weg im Rust/WASM-Kern.
- build:dwgimport-Script, src-tauri/Cargo.toml exclude erweitert.
2026-07-05 03:12:32 +02:00
karim
0e93c31e5a
UI: Gruppe-A-Felder in Objekt-Info-Panel verdrahtet
...
- Treppe: Dropdown Referenz (Links/Mitte/Rechts) vor Laufrichtung.
- Fenster: Feld Fluegel (1-4) nach Bruestung.
- Tuer: Dropdowns Typ (Normal/Wandoeffnung) + Sturzlinien (Keine/Innen/Aussen/
Beide) vor Anschlag.
- host.ts/selectionInfo.ts Durchreichung, App.tsx-Handler (kind-guard +
updateOpening/updateStair), i18n de/en. Rueckwaertskompatibel.
tsc sauber, vitest 292/292.
2026-07-05 03:01:35 +02:00
karim
7b9ea8bd07
Bauteile Gruppe A (4-6): Treppe-Referenz, Fenster-Fluegel, Tuer-wandoeffnung
...
- Treppe referenz links/mitte/rechts (Stair.referenz, Default mitte): Perp-Versatz
referenzMidShift auf start/center, Lauflinie/Pfeil bleiben visuell zentriert.
- Fenster Fluegel-Mittelpfosten (Opening.wingCount 1-4, Default 1): wingCount-1
Querlinien im Rahmen (window-mullion), nur mittel/fein.
- Tuer-Typ wandoeffnung (Opening.doorType, Default normal): ueberspringt
Tuerblatt + Schwenkbogen, Laibung/Sturz bleiben.
- Alle Modellfelder optional/rueckwaertskompatibel. 17 neue Tests.
vitest 292/292, tsc sauber.
2026-07-05 02:33:48 +02:00
karim
4544b6be0d
Bauteile Gruppe A: Treppe-Aussenlinie, Fenster-Bruestung, Tuer-Sturz (Rhino-Vorbild)
...
- Treppe Aussenlinie/Outline (stair.ts stairOutline): gerade=4-Punkt-Rechteck,
L=6-Punkt-Polygon via lineIntersect2d, Wendel=2 Boegen+2 Radiallinien; in
addStairSymbol als durchgezogene Umrisslinie. (Rhino _aussen_gerade/_l/_wendel)
- Fenster Bruestungslinie: bei sillHeight>0 gepunktete Linie auf der Wandachse
zwischen den Pfosten (Klasse window-sill).
- Tuer Sturzlinien (SIA): gestrichelte Linien an Wand-Innen/-Aussenkante, neues
optionales Opening-Feld lintelLines (keine/innen/aussen/beide, Default beide),
rueckwaertskompatibel.
- 12 neue Tests (stairOutline.test.ts). vitest 275/275, tsc sauber.
2026-07-05 01:56:07 +02:00
karim
7ba7dd5731
kernel2d-Port Phase 5: roomArea/ceiling/roomBoundary/stair
...
- roomArea: polygonArea/perimeter/centroid.
- ceiling: normalizeOutline/isValidOutline/ceilingArea/outlineBBox/
outlineCentroid/pointInOutline (+ BBox-Struct, serde camelCase).
- stair: defaultStepCount/stairGeometry (gerade/L/Wendel)/stairCut/stairBBox/
pointHitsStair (StairParams-Struct, strukturgleich; Nullguard ||1e-9 wie TS).
- roomBoundary: detectRooms/roomFromPointInside(Faces)/pointInPolygon
(planarer Graph, Half-Edge-Faces, Miter-Offset; WallSegment/WallFace).
- Batch-Fassaden + Harness-Slices je Modul (Struktur exakt + Werte).
Verifiziert: vitest 263/263 (33 Parity), tsc sauber, build:kernel2d sauber.
Bekannte Teil-Deckung: detectRooms nur mit Rechtecken (1 Face) getestet —
komplexe Topologie-Reihenfolge nicht mit Zufallsgraphen abgesichert.
2026-07-05 01:30:11 +02:00