karim
c993935b17
Symbole-Tab in Project-Settings (Library-Item-Management)
...
Project-Settings hat jetzt 5 Tabs. Neuer 'Symbole'-Tab managt die
Dossier-Library: List/Detail wie Materialien, mit 2D + 3D Slot pro Item.
Backend (library.py):
- save_manifest, update_item, delete_item, add_item — full CRUD aufs
library.json
- copy_to_assets: kopiert User-Dateien in library/assets/ mit
Konflikt-Resolution (auto-suffix)
Backend (rhinopanel.py / ProjectSettingsBridge):
- _send_library: aktuelle Items + libraryRoot an Frontend
- _add_library_file: File-Picker (.3dm direkt; .dwg/.obj/etc. zeigt
Hinweis fuer kuenftige Konvertierung), kopiert + appended ans Item
(variant 2d/3d) oder erstellt neues Item
- _update_library_item: patch by id
- _delete_library_item: entfernt Eintrag aus Manifest
- LIBRARY_ITEMS + LIBRARY_ERROR Messages ans Frontend
Frontend:
- Neuer 'Symbole'-Tab mit List/Detail
- Liste: Name, Type-Icon, '2D'/'3D' Status-Badge
- Detail rechts: Name-Edit (live persist on blur), Type-Toggle
(Symbol/Objekt), 2D/3D-File-Slots mit Datei-Picker, Tags-Editor
- 'Neues Objekt' Button im Listen-Footer
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 03:58:41 +02:00
karim
8184f559fc
Symbol-Funktion in Elemente-Panel (Phase S1+S2)
...
Schema (library.py):
- Item-Format erweitert: files2d + files3d (Backwards-compat zu 'files')
- _build_variant_block + _place_instance + Layer-Routing pro Variante
- import_item akzeptiert at_point + layer2d/layer3d
- _ensure_block_definition mit variant-Suffix (dossier_lib_<id>_2d/_3d)
Backend (elemente.py):
- _layer_path_symbole(geschoss_name, variant) → <geschoss>::40_SYMBOLE::
SYMBOLE_2D bzw. SYMBOLE_3D
- Default-Ebene 40 SYMBOLE via _find_ebene_sublayer_name
- LIST_LIBRARY-Handler: sendet Library-Manifest als LIBRARY_LIST
- CREATE_SYMBOL-Handler: interactive GetPoint im aktiven Viewport,
laedt Block-Def + platziert Instanz(en) auf den richtigen Ebenen
- Pair-Items (2D+3D) werden an gleichem Punkt beidseitig platziert →
Top zeigt 2D-Layer, Persp zeigt 3D-Layer wenn User entsprechend
Sichtbarkeit setzt
Frontend:
- SymbolPicker Modal-Component: Grid mit Symbol/Object-Cards, Search,
Type-Filter (Alle/Symbole/Objekte), Doppelklick = Pick
- Symbol-Button in ElementeApp (PillGroup "Library") oeffnet Modal +
triggert listLibrary() fuer aktuelle Items
- createSymbol(id) → Backend → GetPoint → Place
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 03:31:54 +02:00
karim
8d3b3af882
Material/Ebene-Separation: Hatch raus aus Material (Refactor a)
...
Material ist jetzt rein 3D — Section-Hatch (2D-Schnitt) wird nicht mehr
am Material definiert, sondern am Layer (via Rhino-Layer-Dialog oder
spaeter via Ebenen-Settings + neuer Hatch-Tab im Project-Settings).
Schema-Aenderungen:
- _normalize_material: hatch + scale entfernt
- _MATERIAL_LIBRARY (elemente.py): hatch + scale aus allen Builtin-Mats
- _get_all_materials: ohne hatch
- _send_state materials payload: nur {name, color}
- Library import_material: PBR + Texturen werden weitergegeben
Backend:
- _ensure_material_sublayer: erstellt Sublayer mit Color, RESETTET aber
alten SectionHatchIndex auf -1 (= "kein eigener Hatch") damit
Inheritance/User-Override greift. Vorher wurden alte Material-Hatch-
Werte da haengen geblieben.
Frontend:
- MaterialDetail: Schraffur-Section entfernt
- hatchPatterns-Prop entfernt
Konsequenz: existierende Waende verlieren ihren Section-Hatch beim
naechsten Regen. User definiert Section-Hatches jetzt auf Layer-Ebene.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 02:10:04 +02:00
karim
f760d1c54b
Library Phase A.2 (Symbol/Object-Import) + Oberleiste-Pill-Restyle
...
Library Phase A.2:
- import_symbol/import_object via File3dm.Read + InstanceDefinitions.Add
- Stabile Block-Namen 'dossier_lib_<libraryId>' fuer Dedupe
- Seed-Manifest erweitert um Nordpfeil (symbol) + Laubbaum (object)
- ItemCard rendert type-spezifische Preview (Color-Swatch fuer material,
Material-Icon fuer symbol/object)
Oberleiste-Pill-Restyle:
- OberleisteApp: Version unter DOSSIER-Logo, Settings-Icons vertikal
gestapelt
- ProjectSettingsDialog: Pill-Tabs, BarToggle-Footer, MaterialRow mit
Hover-Highlight, Header entfernt (Eto.Form hat eigenen)
- LibraryBrowser: BarButton-Reload, Pill-Typ-Filter, MaterialCard mit
BarToggle-Pill, Header entfernt
- Globaler select-Stil: bg-input statt bg-item (dunkler im Dark-Mode,
konsistent zu Oberleiste-BarCombo)
Routing:
- OberleisteBridge delegiert OPEN_PROJECT_SETTINGS + OPEN_LIBRARY an
EbenenBridge (sticky ebenen_bridge_ref) — vorher kamen die Messages an
der falschen Bridge an und wurden verschluckt
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-24 16:57:42 +02:00
karim
a308ba62d2
Projekt-Settings-Dialog + Library Phase A + Material-Merger
...
- Project-Settings-Dialog (Voreinstellungen Geschoss/Schnitt + Material-Editor)
ueber Zahnrad-Icon in Oberleiste; Defaults werden in schnitte.pick_schnitt
+ GeschossManager als Vorgabe genommen, pro-Element-Werte unangetastet
- Dossier-Library Phase A (lokal, read-only): rhino/library.py + LibraryBrowser
Satellite; Seed-Manifest unter ~/Library/Application Support/Dossier/library/
- Material-Merger: _get_all_materials(doc) merged builtin _MATERIAL_LIBRARY
mit Projekt-Settings-Materialien (inkl. Library-Imports); Wand-Erstellung,
Sub-Layer-Anlage + Elemente-Material-Dropdown ziehen jetzt aus dem Merge
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-24 02:19:09 +02:00