Files
DOSSIER/launcher/README.md
T
karim 9dc191be4f Initial commit — Dossier Rhino 8 Plugin
OpenStudio-Suite Architektur-Plugin fuer Rhino 8 (Mac):
- Smart-Elemente: Wand, Decke, Dach (Pult/Sattel/Walm/Mansarde),
  Oeffnungen (Fenster/Tueren mit Rahmen + Sims + Glas + Fluegel),
  Treppen (gerade · L · Wendel mit Schrittmass-Validierung)
- Live-Previews mit Step-Lines + Soll-Range-Clamping
- Bidirektionale Selection-Sync zwischen Source-Linie und Volume
- Geschoss-/Ebenen-Verwaltung mit OKFF-Persistenz
- Layouts mit PDF-Export
- Ausschnitte / Massstab / Override-Regeln
- Petrol-Gruen Theme (Rapport-konform)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 04:27:41 +02:00

91 lines
2.8 KiB
Markdown
Raw 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.
# Dossier Launcher
Standalone macOS-App, die als Projekt-Hub für Dossier-Projekte in Rhino 8 dient.
Wählt eine `.3dm` aus, konfiguriert pro Projekt welche Module aktiv sind, startet
Rhino mit der Datei. Das Python-Plugin in `rhino/` liest beim Start die
`dossier.project.json` (neben der `.3dm`) und lädt nur die aktivierten Module.
## Setup (einmalig)
### 1. Dependencies installieren
```bash
cd launcher
npm install
```
Beim ersten `npm run tauri dev` zieht Cargo zusätzlich die Rust-Dependencies
(dauert ein paar Minuten).
### 2. Rhino Auto-Run einrichten
Damit die Module bei jedem Rhino-Start automatisch laden:
1. Rhino 8 starten
2. `Rhinoceros 8``Preferences``General`**Startup commands**
3. Folgende Zeile eintragen:
```
_-RunPythonScript "/Users/karim/STUDIO/rhino-panel/rhino/startup.py"
```
4. OK → Rhino neu starten
Ab jetzt lädt `startup.py` bei jedem Rhino-Start:
- mit `dossier.project.json` neben der `.3dm` → nur konfigurierte Module
- ohne Config → alle Module (Backwards-Compat zum bisherigen Verhalten)
## Entwicklung
```bash
npm run tauri dev
```
Startet Vite (Port 5174) und öffnet die Tauri-Window. Hot-Reload für React,
Rust-Änderungen brauchen einen Rebuild.
## Build (.app + .dmg)
```bash
npm run tauri build
```
Output: `src-tauri/target/release/bundle/macos/Dossier.app` und
`src-tauri/target/release/bundle/dmg/Dossier_0.1.0_*.dmg`
**Vor dem ersten Build**: Icons hinterlegen. Aktuell ist `bundle.icon` in
`src-tauri/tauri.conf.json` leer. Mit
```bash
npm run tauri icon path/zur/icon.png
```
generiert Tauri das vollständige Icon-Set (1024×1024 PNG als Quelle reicht).
## Architektur
```
launcher/
├── modules.json # Modul-Manifest (statisch, in Binary einkompiliert)
├── src/ # React-Frontend
│ ├── App.jsx # Project Hub + Modul-Dialog
│ └── styles.css
└── src-tauri/ # Rust-Backend
├── src/lib.rs # Tauri-Commands
└── tauri.conf.json
```
**Datenfluss:**
1. Launcher liest `~/Library/Application Support/Dossier/recent.json`
2. User klickt „Öffnen" → Launcher schreibt `dossier.project.json` neben die
`.3dm` und ruft `open -a "Rhinoceros 8" file.3dm`
3. Rhino startet, `startup.py` läuft, liest die Config, lädt nur die aktivierten
Module
4. Jedes Modul registriert sein eigenes Panel via `panel_base.register_and_open`
## Module-Manifest erweitern
Wenn ein neues Modul dazukommt, **drei Stellen** synchron halten:
1. `launcher/modules.json` — Eintrag mit `id`, `name`, `description`, `pythonModule`, `dependsOn`
2. `rhino/startup.py` — `_MODULE_TO_PY` Map ergänzen
3. `rhino/<pythonModule>.py` — die Python-Implementierung
Launcher rebuilden (`npm run tauri build`), neue `.app` ersetzt die alte.