18d6d98e07
- 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
66 lines
2.3 KiB
Bash
Executable File
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'"
|