Files
DOSSIER/launcher/scripts/clean-rhino.sh
T
karim 18d6d98e07 DOSSIER Multi-Phase: C#-Plugin + Yak + Wandstile + UX-Polish
- C#-Plugin "DOSSIER" mit 23 nativen Commands (dWall, dDoor, ..., dSection)
  - Native Command-Namen + Autocomplete + saubere History
  - Idle-Defer + RhinoCode-API → kein _-RunPythonScript-Echo
  - Yak-Paket via build.sh, Install in ~/Library/.../packages/8.0/
- Launcher (Tauri):
  - dossier_init Tauri-Command + Setup-Tab in Settings
  - Yak-Install + StartupCommands-XML + Window-Layout in einem Schritt
  - clean-rhino.sh fuer reproduzierbare Resets
  - check_dossier_initialized triggert Auto-Open-Setup beim ersten Start
- Wand-Architektur:
  - Chain-Logik DEAKTIVIERT → jede Wand baut eigenes Volume (individuell
    anwaehlbar, einzeln loeschbar)
  - Polyline-Wand: jedes Segment = eigene Wand
  - Smart-Split fuer wand_axis/decke/dach/raum/aussparung/traeger
  - Auto-Group axis+volume → kein ChooseOne-Dialog, Delete loescht beides
  - Stale-Mitre-Fix: Joint-Cache wird vor jedem Wand-Regen invalidiert
  - T-Junction-Tolerance auf 1mm (war 1cm, lieferte falsche T-Mitres)
- Wand-Stile:
  - Schema in dossier_project_settings.wand_styles (Material + Prio +
    Default-Dicke + Referenz, oder Layered mit Schichten)
  - dWall-Command Stil-Picker
  - ProjectSettingsDialog: Sidebar-Layout (Pill-Selection) +
    Wandstile-Tab mit Liste/Editor
  - _wand_chain_compat benutzt style_id
  - Prio-Dominanz: hoehere Prio gewinnt Eckverbindung, niedrigere wird
    T-mitered (siehe _resolve_corner_miter)
- Cmd+G fuer Group (Geschoss-Up auf Alias 'gu')
- Welcome + Cheatsheet borderless mit X/Back-Buttons
- BeginCommand-Hook fuer Gestaltung-Panel-Auto-Open
- panel_base: Python.NET-Enum-Fix fuer Material-Render
2026-05-30 12:46:53 +02:00

66 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# clean-rhino.sh — setzt DOSSIER in Rhino zurueck auf "frisch installiert" Zustand.
# Damit kann das Setup im Launcher (Settings → Setup tab) jederzeit von Null
# durchgespielt werden.
#
# Aufgaben:
# 1. yak uninstall dossier (Plugin raus)
# 2. Window-Layout-Datei loeschen (workspaces/<guid>.xml)
# 3. StartupCommands-XML-Eintrag entfernen (Python-Bootstrap-Trigger)
#
# Bleibt unangetastet:
# - dossier_settings.json (User-Praeferenzen, Tags, etc.)
# - launcher recent.json
# - alles ausserhalb DOSSIER
set -e
RHINO_APP="/Applications/Rhino 8.app"
YAK="$RHINO_APP/Contents/Resources/bin/yak"
SETTINGS_XML="$HOME/Library/Application Support/McNeel/Rhinoceros/8.0/settings/settings-Scheme__Default.xml"
WORKSPACES_DIR="$HOME/Library/Application Support/McNeel/Rhinoceros/8.0/settings/Scheme__Default/workspaces"
LAYOUT_GUID="b6b68c03-3031-4899-bca2-fe6e425146fc"
# --- Safety: Rhino muss zu sein ---
if pgrep -f "Rhino 8.app/Contents/MacOS/Rhinoceros$" >/dev/null; then
echo "FEHLER: Rhino laeuft. Bitte beenden und nochmal."
exit 1
fi
# --- 1. Yak uninstall (idempotent — meldet 'package not installed' wenn schon weg) ---
echo "==> 1. Yak uninstall dossier"
if [ -x "$YAK" ]; then
"$YAK" uninstall dossier 2>&1 | sed 's/^/ /' || true
else
echo " WARN: yak nicht gefunden — skip"
fi
# --- 2. Window-Layout-Datei loeschen ---
echo "==> 2. Window-Layout-Datei loeschen"
LAYOUT_FILE="$WORKSPACES_DIR/$LAYOUT_GUID.xml"
if [ -f "$LAYOUT_FILE" ]; then
rm -v "$LAYOUT_FILE" | sed 's/^/ /'
else
echo " schon weg"
fi
# --- 3. StartupCommands-Eintrag aus XML entfernen ---
echo "==> 3. StartupCommands-Eintrag entfernen"
if [ -f "$SETTINGS_XML" ]; then
# sed: matche genau unsere DOSSIER-Zeile und loesche
# (egal welcher Pfad — solange startup.py drin steht)
if grep -q 'StartupCommands.*startup.py' "$SETTINGS_XML"; then
# macOS sed braucht leeres Backup-Suffix
sed -i '' '/<entry key="StartupCommands">.*startup\.py.*<\/entry>/d' "$SETTINGS_XML"
echo " entfernt"
else
echo " schon weg"
fi
else
echo " WARN: Rhino-settings-XML nicht gefunden"
fi
echo
echo "Clean fertig. Naechster Schritt:"
echo " → Launcher → Settings → Setup → 'Setup starten'"